<template>
    <div>
        <button @click="isShow = !isShow">显示/隐藏元素</button>
        <!-- 
      可以执行动画的前提是:
        1. 某个元素必须通过v-show或者v-if来控制
        2. 动画元素外层嵌套一个transition组件
      -->
        <transition>
            <div class="box" v-show="isShow"></div>
        </transition>
    </div>
</template>

<script>
export default {
    name: "App",
    data() {
        return {
            isShow: true,
        };
    },
};
</script>
<style scoped>
.box {
    width: 200px;
    height: 200px;
    background: pink;
}

/* 控制动画的元素在进入时,和离开之后的样式 */
.v-enter,
.v-leave-to {
    opacity: 0;
}

/* 控制动画的元素在进入后和离开时的样式 */
.v-leave,
.v-enter-to {
    opacity: 1;
}

/* 控制动画的元素在进入的过程中和移出的过程中的过渡动画效果 */
.v-enter-active {
    transition: all 1s linear;
}

.v-leave-active {
    transition: all 3s linear;
}
</style>
